"""
   -*- coding: utf-8 -*-
   @Time    : 2021/3/26 17:49
   @Author  : 狠欢
   @File    : 作业--容器类.py
   @Software: PyCharm
"""
# 报名系统
# 登陆 root 123456
# 1、查看报名详情
#  姓名    爱好   家庭住址
#  戴军    唱歌    娄底
# 胥子珍  追剧    陕西
# #2、报名
#  输入 姓名 爱好 家庭住址
# 3、退出系统

"""
需求简要
实现用户登录注册功能并将信息保存到文件
实现查看报名信息功能并对其信息做增删改查功能
不足:修改操作时，原来的数据不能删除
     删除操作还不够完善

"""


def main():
    while 1:
        display_function()
        user_doing = int(input("请输入您希望执行的操作："))
        if user_doing == 1:
            user_play = int(input("请输入您希望执行的操作1为登录，2为注册："))
            login_register(user_play)
            print("---------------------------------")
        elif user_doing == 2:
            name = input("请输入您的名字：")
            age = input("请输入您的年龄：")
            hobbies = input("请输入您的爱好：")
            address = input("请输入您的家庭住址：")
            user_add(name, age, hobbies, address)
            print("---------------------------------")
        elif user_doing == 3:
            del_name = str(input("请输入您要删除的姓名："))
            user_del(del_name)
            print("---------------------------------")
        elif user_doing == 4:
            updata_name = input("请输入您要修改的名字：")
            updata_age = input("请输入您要修改人的年龄：")
            updata_hobbies = input("请输入您要修改人的爱好：")
            updata_address = input("请输入您要修改人的家庭住址：")
            user_update(updata_name, updata_age, updata_hobbies, updata_address)
            print("---------------------------------")
        elif user_doing == 5:
            select_name = input("请输入您要查看的名字：")
            user_select(select_name)
            print("---------------------------------")
        elif user_doing == 6:
            show_user()
            print("---------------------------------")
        elif user_doing == 0:
            print("退出系统！")
            break


def display_function():
    print("1.登录注册\n2.新增报名信息\n3.删除报名信息\n4.修改报名信息\n5.查找报名信息\n6.展示所有用户信息\n0.退出系统")


def user_add(name, age, hobbies, address):
    user_information = {}
    user_information['name'] = name
    user_information['age'] = age
    user_information['hobbies'] = hobbies
    user_information['address'] = address
    f = open('add_user.txt', 'a+', encoding="utf-8")
    f.write(str(user_information) + "\n")
    f.close()


def user_del(del_name):
    with open('add_user.txt', 'r', encoding="utf-8") as r:
        lines = r.readlines()
    with open('add_user.txt', 'w', encoding="utf-8") as w:
        for l in lines:
            if del_name not in l:
                w.write(l)
                print("删除成功")


def user_update(updata_name, updata_age, updata_hobbies, updata_address):
    with open('add_user.txt', 'r', encoding="utf-8") as r:
        lines = r.readlines()
        for l in lines:
            l_dict = eval(l)
            with open('add_user.txt', 'a+', encoding="utf-8") as w:
                if l_dict['name'] == updata_name:
                    l_dict['name'] = updata_name
                    l_dict['age'] = updata_age
                    l_dict['hobbies'] = updata_hobbies
                    l_dict['address'] = updata_address
                    w.write(str(l_dict))
                    break
                else:
                    raise SyntaxError("找不到您要修改的数据")


def user_select(select_name):
    with open('add_user.txt', 'r', encoding="utf-8") as f:
        lines_ = f.readlines()
        for li in lines_:
            line_dict = eval(li)
            if line_dict['name'] == select_name:
                print(line_dict)


def show_user():
    with open('add_user.txt', 'r', encoding="utf-8") as f:
        lines_ = f.readlines()
        for li in lines_:
            line_dict = eval(li)
            print(line_dict)


def login_register(user_play):
        if user_play == 1:
            f = open('login.txt', 'r')  # 打开文件
            res = f.readlines()  # 读取文件的所有内容，类型为string
            f.close()
            save_name_password = {}
            for i in res:
                a = eval(i)
                save_name_password.update(a)

            user_id = input("请输入您的账号：")
            if user_id not in save_name_password:
                print("账号不存在，请先注册")
            else:
                user_password = input("请输入密码：")
                if save_name_password[user_id] == user_password:
                    print("恭喜你登录成功")

                else:
                    for i in range(3):
                        reinput = input(f"抱歉，您输入的密码错误，您还有{3-i}次机会：")
                        if save_name_password[user_id] == reinput:
                            print("恭喜你登录成功")
                            break

        if user_play == 2:
            get_user_name = input("请输入您的用户名：")
            get_user_password = input("请输入您的密码：")
            get_dict = {}
            get_dict[get_user_name] = get_user_password
            f = open('login.txt', 'a+')
            f.write(str(get_dict)+"\n")
            f.close()
            print("恭喜你，注册成功！！！！")


if __name__ == '__main__':
    main()

















































# 用python实现，统计/tmp/abc 目录下，以jpg、jpeng、gif、peng结尾的文件各有多少个

# 3、自己去了解  python字典的实现原理？

# 互送礼活动
# 圣诞节到了，公司开展一个互送礼物活动。
# 每个员工系统会随机抽取一位送礼物的对 象，送礼对象不能重复。最终每个人都能送出和收到一份礼物。
# • 定义好公司员工名单
# • 循环系统会随机抽取一位收礼物的人
#  • 打印最终的送礼和收礼的关系